package com.rongji.dfish.misc.util;


import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;


/**
 * Excel注解
 * @author CZZ
 */
@Target({ElementType.METHOD, ElementType.FIELD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
public @interface ExcelField {


    /**
     * 导出字段名（默认调用当前字段的“get”方法，如指定导出字段为对象，请填写“对象名.对象属性”，例：“area.name”、“office.name”）
     */
    String value() default "";


    /**
     * 导出字段标题（需要添加批注请用“**”分隔，标题**批注，仅对导出模板有效）
     */
    String title();


    /**
     * 字段类型（0：导出导入；1：仅导出；2：仅导入）
     */
    int type() default 0;


    /**
     * 导出字段对齐方式
     *
     * 备注：Integer/Long类型设置居右对齐
     */
    int align() default 0;


    /**
     * 导出字段字段排序（升序）
     */
    int order() default 0;


    /**
     * 如果是字典类型，请设置字典的type值
     */
    String codeType() default "";


    /**
     * 反射类型
     */
    Class<?> fieldType() default Class.class;


    /**
     * 字段归属组（根据分组导出导入）
     */
    int[] groups() default {};


    /**
     * 列宽
     * @see com.rongji.dfish.misc.util.ExcelConstants#COL_WIDTH_SMALL
     * @see com.rongji.dfish.misc.util.ExcelConstants#COL_WIDTH_MEDIUM
     * @see com.rongji.dfish.misc.util.ExcelConstants#COL_WIDTH_LARGE
     * @see com.rongji.dfish.misc.util.ExcelConstants#COL_WIDTH_HUGE
     */
    int width() default 0;


    /**
     * 日期格式
     */
    String dateFormat() default "";


    /**
     * 小数点位数
     * tips: 0: 默认格式，正整数: 小数位
     */
    int precision() default 0;

}

